/// <reference path="../typings/index.d.ts" />
/// <reference path="../src/goodsTypeService.ts" />
/// <reference path="../src/tms.ts" />

describe('getGoodsTypeList',() => {
    var injector:ng.auto.IInjectorService;
    var service:IGoodsTypeService;

    beforeEach(() => {
        injector = angular.injector(['ng','tms']);
        service = injector.get<IGoodsTypeService>('goodsTypeService');
    });

    //常规无条件获取
    it('get goodsType list normal',(done) => {
        service.getList(null, null, 0, 10).then((res) => {
            expect(res.data.total).toBeGreaterThan(0);
            expect(res.data.list.length).toBe(10);
            expect(res.data.extData).toBe('||0|10');
            done();
        },(err) => {
            done.fail(err);
        });
    });

    //获取 企业公司编号包含1 的货物类别列表
    it('get goodsType list by enterpriseid \'1\'',(done) => {
        service.getList('1',null,0,10).then((res) => {
            expect(res.data.total).toBeGreaterThan(0);
            expect(res.data.list.length).toBe(10);
            expect(res.data.extData).toBe('1||0|10');
            done();
        },(err) => {
            done.fail(err);
        });
    });

    //获取类别名称包含 大巴车 的货物类别列表
    it('get goodsType list by name \'大巴车\'',(done) => {
        service.getList(null,'大巴车',0,10).then((res) => {
            expect(res.data.total).toBeGreaterThan(0);
            expect(res.data.list.length).toBe(10);
            expect(res.data.extData).toBe('|大巴车|0|10');
            done();
        },(err) => {
            done.fail(err);
        });
    });

    //获取 企业公司编号包含4  类别名称包含爱情花 的货物类别列表
    it('get goodsType list by enterpriseid \'4\' and  name \'爱情花\'',(done) => {
        service.getList('4','爱情花',0,10).then((res) => {
            expect(res.data.total).toBe(10);
            expect(res.data.list.length).toBe(10);
            expect(res.data.extData).toBe('4|爱情花|0|10');
            done();
        },(err) => {
            done.fail(err);
        });
    });
    

    //获取货物类别详细
    it('get detail',(done)=>{
        service.getDetail('1').then((res)=>{
            expect(res.data.enterpriseCompanyId).toBe("2");
            expect(res.data.name).toBe("detail");
            expect(res.data.remarks).toBe("备注");
            done();
        },(err)=>{
            done.fail(err);
        });
    });

    //添加货物类别
    it('add goodsType',(done)=>{
        service.add('2','测试花','测试').then((res)=>{
            expect(res.data.extData).toBe("2|测试花|测试");
            done();
        },(err)=>{
            done.fail(err);
        });
    });

    //编辑货物类别
    it('edit goodsType',(done)=>{
        service.edit('1','2','测试花2','测试2').then((res)=>{
            expect(res.data.extData).toBe("1|2|测试花2|测试2");
            done();
        },(err)=>{
            done.fail(err);
        });
    });

    //删除货物类别
    it('delete goodsType',(done)=>{
        service.delete('1').then((res)=>{
            expect(res.data.extData).toBe("1");
            done();
        },(err)=>{
            done.fail(err);
        });
    });
    
});